- Daniel torres aguirre - Deyner elías López Pineda - Wilmar Andrés García Bedoya - Andres Camilo Garcia Moreno - Amilder Stewin Ospina Tobón
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Inventore itaque iure ipsum sunt omnis quis vel doloremque provident, nam perspiciatis id soluta quos iste. Ratione facere nesciunt unde. Repellat saepe quo veniam corporis reprehenderit dolores eveniet voluptate aperiam eaque officia? Sed aperiam et eius obcaecati. Similique ex quod quae rerum ad assumenda enim possimus id tempore, perferendis incidunt explicabo facilis laudantium nulla temporibus deserunt est ratione corporis sequi aliquam nostrum consequuntur! Culpa officia, autem veniam ratione ut consequuntur quas a, neque sint facere fugit fugiat exercitationem recusandae magni quam cumque repellendus illo facilis blanditiis eligendi consequatur ducimus id. Error, facilis?
Los datos fueron obtenidos de la plataforma medata, la base de datos cuenta con un total de 270.765 observaciones con 18 variables, datos obtenidos en el periodo comprendido entre el año 2014 y 2020, en la siguiente sección realizamos la limpieza de los datos y organización de los mismos para realizar un análisis descriptivo de estos y posteriormente realizar los agrupamiento solicitados y la predicción de accidentalidad.
A continuación, se hace la revisión y descripción de cada variable con el fin de encontrar datos inconsistentes, esto se realizo revisando el csv en excel para datos inconsistentes y en R para los datos faltantes.
AÑO: año de ocurrencia del incidente. (2014 hasta 2016)
CBML: es el código catastral que corresponde al código comuna, barrio, manzana, lote catastral de un predio. En este encontramos 18.156 vacíos y adicionalmente tiene 962 registros con caracteres extraños como: AUC1, AUC2, Inst_14, Inst_16, Inst_18, Inst_19, Sin Inf, SN01, para un total de 19.118 registros mal estructurados o vacíos.
CLASE_ACCIDENTE: clasificación del IPAT (Informe Policivo de Accidente de tránsito) sobre la clase de accidente de tránsito, hay 5 tipos de clasificación, choque, atropello, volcamiento, caída de ocupante, incendio y adicional se hay otra clasificación denominada como “otro”. En esta variable encontramos un total de 6 datos vacíos los cuales se cambiarán por “otro”.
DISEÑO: esta corresponde al sitio donde ocurrió el accidente (Ciclorruta, Glorieta, Intersección, Lote o Predio, Paso a Nivel, Paso Elevado, Paso Inferior, Pontón, Puente, Tramo de vía, Túnel, Vía peatonal). En esta encontramos 1.148 vacíos los cuales se reemplazarán por “otro”.
BARRIO: barrio de ocurrencia del incidente vial, en este encontramos 19.006 vacíos,Además se tienen 1.822 registros adicionales con carácteres como: números entre 0 y 9.086, AUC1, AUC2, Inst, Sin Inf, Sin nombre.
COMUNA: denominación con la cual se identifica cada Comuna o Corregimiento, en este encontramos 12.798 vacíos ademas se tienen 7.064 registros adicionales con carácteres como: No Georef, 0, In, AU, Sin Inf, SN.
NUMCOMUNA: número de la comuna en la que ocurrió incidente vial, se encontraron 20.116 registros adicionales con caracteres como: AU, In, Sin Inf, SN.
LOCATION: fuente de información con la cual se realizó la geo codificación, contiene la latitud y longitud, Posteriormente será separada en dos variables.
X: coordenada X en metros del accidente, en sistema de coordenadas MAGNA Medellín Local.
Y: coordenada Y en metros del accidente, en sistema de coordenadas MAGNA Medellín Local.
NRO_RADICADO: consecutivo que asigna UNE, según el orden de llegada de los expedientes para su diligenciamiento.
MES: mes de ocurrencia del incidente vial. Esta variable no se modifica.
GRAVEDAD_ACCIDENTE: clasificación del IPAT (Informe Policial de Accidentes de Tránsito) sobre la gravedad del accidente, corresponde al resultado más grave presentado en el accidente. Daños materiales “Sólo daños”, accidente con heridos “Herido”, accidente con muertos “Muerto”,en esta variable se cambia la codificación a UTF-8
FECHA_ACCIDENTES: fecha de los accidente (formato YYYY-MM-DD hh:mi:ss), proviene del IPAT (Informe Policial de accidentes de Tránsito)
FECHA_ACCIDENTE: fecha del accidente, proviene del IPAT (Informe Policial de accidente de Tránsito) esta variable posteriormente se elimina debido a que proporciona menos información que la variable FECHA_ACCIDENTES.
EXPEDIENTE: consecutivo que asigna UNE, según el orden de llegada de los expedientes para su diligenciamiento. Esta variable posteriormente se elimina.
DIRECCION ENCASILLADA: dirección encasillada que entrega el geo codificador. Esta variable se elimina.
DIRECCION: dirección donde ocurrió el incidente. Esta variable no se modifica.
NRO_RADICADO: consecutivo que asigna UNE, según el orden de llegada de los expedientes para su diligenciamiento.
En esta sección hicimos integración entre los datos de nuestra base de datos y los datos encontrados en la plataforma Geo Medellín, esto con el fin de encontrar datos faltantes respecto a barrios, comunas, posteriormente realizaremos la depuración de la base de datos, donde eliminaremos las observaciones con datos faltantes irrecuperables y variables que no sean necesarias para el contexto de nuestro análisis.
Para la integración de los datos usamos lo datos contenidos en la pagina web Geo medellín, de nuestra base de datos usamos la variable CBML y con los primeros 4 dígitos poder obtener los datos faltantes de barrio y comuna cruzando los datos entre nuestra base de datos y la de geo Medellín.
Luego de hacer la revisión de las variables y eliminar los datos irrecuperables, procedemos a eliminar las variables temporales que creamos y otras variables presentes en la base de datos las cuales consideramos que no son necesarias para realizar el proyecto.
Para las fechas especiales se crean dos nuevas variables;
FESTIVIDAD y TIPO_FESTIVIDAD. Estas variables
provienen de una base de datos externa que se adiciona a la base de
análisis y abarca los días feriados en Colombia desde 2014 hasta
2021.
FESTIVIDAD: contiene dos etiquetas (SI/NO). SI: cuando hay festividad para ese día. NO: cuando no hay festividad para ese día,
TIPO_FESTIVIDAD: contiene seis tipos de
festividad:
FESTIVO: día feriado.
NAVIDAD: 24,25 y 31 de diciembre.
SEM_SANTA: toda la semana santa, desde el lunes hasta
el domingo.
BRUJAS: 31 de octubre.
MADRES: el día de madres designado para el año
respectivo.
NUEVO: primero de enero de cada año.
Luego de realizar todo el pre procesamiento a la base de datos, podemos observar mediante la siguiente tabla cual fue el resultado final.
En esta sección realizaremos el análisis descriptivo por las variables que consideramos que representan una descripción de la distribución de los datos a lo largo del periodo contenido, con el fin de ver cuál es el comportamiento de los datos.
En el año 2014 no hay registrados datos de accidentes antes del 4 de julio, lo cual no significa que en estas fechas no ocurrieran accidentes. -Al igual que en 2014, en el año 2020 no se han registrado accidentes en la base de datos abiertos de Medellín, después del 31 de agosto hasta la fecha actual.
El día que presenta mayor cantidad de personas accidentadas, es el día viernes seguido del día martes, con una diferencia de 655 accidentes registrados. Seguido de esto los días miércoles – jueves y lunes – sábado, presentan una accidentalidad similar con una diferencia de 331 y 46 accidentes de diferencia, respectivamente, y el día domingo es el día con menor número de accidentes registrados.
En la segmentación por mes, podemos ver que el mes con mayor numero de accidentes es el 8 (agosto) con 24901 accidentes registrados, algo contrastante con el mes de diciembre el cual es el mes donde mas fiestas se registran y el cual cuenta con un número de accidentes de 21450.
En los accidentes registrado entre los años 2015 a 2019 podemos ver que no hay mucha variación entre el numero de accidentes registrados en cada uno de estos, a diferencia de los años 2014 y 2020 los cuales en el dataset proporcionado solo contamos con datos desde el 4 de julio a 31 de diciembre, para los datos del 2014, y desde el 1 de enero hasta el 31 de agosto para los datos del año 2020, por esto es que podemos ver una diferencia notoria de estos dos años, respecto a los tomados de 2015 a 2019.
Según la gráfica, la comuna en la que mas se presentan accidentes es la candelaria, esto debido a que es la comuna ubicada en el centro de Medellín y una de las que mayor flujo de vehículos tiene.
En la grafica de accidentes por tipo de festividad podemos ver que el mayor numero de accidentes que se presentan es la semana santa, pero esto dado que en esta categoría están incluidos los 7 días de la semana, el cual, si los dividimos en una proporción igual nos como resultado un promedio de 434 accidentes por día, por lo que están dentro de los índices de los otros tipos de festividad. Además, en la gráfica de accidentes por día feriado, vemos que los accidentes ocurridos en estas fechas representan el 4.27% de el total de los accidentes registrados en el periodo de 2014 a 2020.
Además de verificar los accidentes por tipo de festividad, también haremos revisión de la distribución de los datos respecto a si el día del accidente era o no festivo.
En esta sección. construiremos y validaremos un modelo que permita predecir la accidentalidad por tipo de accidente a nivel semanal, mensual y diario. Para esto se consideran fechas especiales.
Los modelos predictivos que veremos se construirán con los datos de los años 2014, 2015, 2016, 2017 y 2018; esta será la base para entrenamiento. Los accidentes del año 2019 y 2020 se usarán para validar los modelos.
El criterio de éxito de los modelos predictivos será el MAE de la predicción.
Empezaremos por buscar el mejor modelo para realizar las predicciones diarias.
Como nos interesa predecir el número de accidentes por unidad de
tiempo, resulta conveniente utilizar un modelo lineal generalizado con
la distribución Poisson. Para este primer modelo, consideraremos
únicamente las variables FESTIVIDAD Y
DIA_SEMANA para predecir la accidentalidad.
## [1] "MSE: 367.628502, MAE: 14.509135, R2: 0.485746"
Para los datos de entrenamiento, se obtiene un MAE de 14.5091352, y un R2 de 0.4857459.
## [1] "MSE: 497.005479, MAE: 17.438356, R2: 0.433695"
Para los datos de validación del año 2019, se obtiene un MAE de 17.4383562, y un R2 de 0.4336946.
## [1] 20.1888
La variación entre el MAE de entrenamiento y validación es de 20.1888 %, lo cual indica un posible sobre entrenamiento. Además, el R2 es relativamente bajo, cercano al 50%. Veamos que pasa para el año 2020.
## [1] "MSE: 3139.151639, MAE: 47.422131, R2: -1.172789"
Para los datos de validación del año 2020, se obtiene un MAE de 47.4221311, y un R2 de -1.1727893. Este MAE tan alto y este R2 negativo indican que el modelo se ajusta muy pobremente a los datos del año 2020.
Sin embargo, tal como veremos a continuación, ningún modelo se ajusta bien al año 2020. Esto se puede explicar por dos posibles razones:
Por tanto, el año 2020 no nos será muy útil para validar los modelos, ya que el comportamiento de este año es muy diferente a los demás años con los que se entrenó el modelo.
## [1] 226.8433
La variación entre el MAE de entrenamiento y validación es de 226.8433 %.
En el segundo modelo, utilizaremos las mismas variables del modelo inicial, y sumaremos la variable clase. Veamos su desempeño.
## [1] "MSE: 58.326135, MAE: 4.747485, R2: 0.933371"
Para los datos de entrenamiento, se obtiene un MAE de 4.7474847, y un R2 de 0.9333708.
## [1] "MSE: 65.829308, MAE: 5.048847, R2: 0.926052"
Para los datos de validación del año 2019, se obtiene un MAE de 5.0488474, y un R2 de 0.926052. Estos valores son mucho mejores que los obtenidos con el modelo anterior.
## [1] 6.347841
La variación entre el MAE de entrenamiento y validación es de 6.347841 %; según estta cifra, no hay indicios de sobreentrenamiento. El R2 fue muy bueno tanto en entrenamiento como en validacion, superior al 90%. Este modelo es un muy buen candidato para ser utilizado en las predicciones futuras.
## [1] "MSE: 356.077572, MAE: 10.497470, R2: 0.116423"
Para los datos de validación del año 2020, se obtiene un MAE de 10.4974705, y un R2 de 0.1164231. El modelo se ajusta ligeramente mejor a los datos de 2020 respecto al caso anterior, pero sigue siendo muy inadecuado para predecir la accidentalidad de este año. Tal como se explicó anteriormente, no es adecuado validar el modelo con estos datos.
## [1] 121.1165
La variación entre el MAE de entrenamiento y validación es de 121.1165 %.
El modelo 2 tuvo un muy buen desempeño. Aun así, sería interesante probar modelos utilizando otras variables. Para este caso usaremos las variables Festividad, Día Semana y Diseño.
## [1] "MSE: 87.901661, MAE: 5.187375, R2: 0.912845"
Para los datos de entrenamiento, se obtiene un MAE de 5.1873754, y un R2 de 0.9128454.
## [1] "MSE: 97.620890, MAE: 5.706963, R2: 0.857395"
Para los datos de validación del año 2019, se obtiene un MAE de 5.7069632, y un R2 de 0.8573946.
## [1] 10.01639
La variación entre el MAE de entrenamiento y validación fue de 10.01639 %; según estta cifra, no hay indicios de sobreentrenamiento. El R2 fue bastante bueno tanto en entrenamiento como en validacion, cercano al 90%, pero inferior al del modelo 2. Además, el MAE tambien fue superior que el del modelo 2. Por tanto, descartamos este modelo.
## [1] "MSE: 464.239930, MAE: 11.781086, R2: -0.236520"
Para los datos de validación del año 2020, se obtiene un MAE de 11.7810858, y un R2 de -0.2365198.
## [1] 127.1107
La variación entre el MAE de entrenamiento y validación es de 127.1107 %.
Ahora, probaremos un nuevo modelo, tomando las mismas variables del
modelo inicial, pero añadiendo la variable COMUNA.
## [1] "MSE: 9.769576, MAE: 2.141301, R2: 0.771830"
Para los datos de entrenamiento, se obtiene un MAE de 2.1413013, y un R2 de 0.7718301.
## [1] "MSE: 10.576090, MAE: 2.206781, R2: 0.765036"
Para los datos de validación del año 2019, se obtiene un MAE de 2.2067813, y un R2 de 0.7650363.
## [1] 3.057955
La variación entre el MAE de entrenamiento y validación fue de 3.057955 %; esta es la variación más baja obtenida hasta el momento, y nos da una buena señal de que no hay sobre entrenamiento. También, a pesar de que los R2 son ligeramente inferiores respecto a los modelos 2 y 3, pues son cercanos al 80%, el MAE fue mucho más bajo que en los anteriores modelos, y, teniendo en cuenta que el MAE es nuestro criterio de éxito, podemos decir que este modelo también es un buen candidato para realizar nuestras predicciones.
## [1] "MSE: 23.711105, MAE: 3.286509, R2: -0.051873"
Para los datos de validación del año 2020, se obtiene un MAE de 3.2865094, y un R2 de -0.0518735.
## [1] 53.48188
La variación entre el MAE de entrenamiento y validación es de 53.48188 %.
Finalmente, probaremos un último modelo, usando aquellas variables
que tuvieron el mejor MAE en los modelos anteriores, es decir,
CLASE y COMUNA. Se incluirán también las
variables del modelo inicial.
## [1] "MSE: 4.047626, MAE: 1.168944, R2: 0.711627"
Para los datos de entrenamiento, se obtiene un MAE de 1.1689436, y un R2 de 0.7116275.
## [1] "MSE: 4.127869, MAE: 1.160140, R2: 0.711580"
Para los datos de validación del año 2019, se obtiene un MAE de 1.1601404, y un R2 de 0.7115796.
## [1] -0.7530888
La variación entre el MAE de entrenamiento y validación fue mínima, de tan solo -0.75 %; este dato nos ayuda a estar muy seguros de que no hay sobre entrenamiento. Con este modelo también conseguimos el MAE más pequeño de todos, cercano a 1, y el R2 cuadrado sigue siendo bueno, superior al 70%. Por tanto, concluimos que este es el mejor modelo para predecir, según nuestro criterio de éxito.
## [1] "MSE: 5.091152, MAE: 1.360412, R2: 0.270880"
Para los datos de validación del año 2020, se obtiene un MAE de 1.3604119, y un R2 de 0.2708799.
## [1] 16.3796
La variación entre el MAE de entrenamiento y validación fue de 16.3796 %.
Una vez tenemos determinado el mejor modelo (5) para las predicciones diarias, podemos pasar a evaluarlo semanalmente para validar su eficiencia en plazos semanales.
Veamos cómo se comporta este modelo para predecir la accidentalidad
semanalmente. En este caso, las variables a utilizar serán
FESTIVIDAD, SEMANA, CLASE y
COMUNA.
## [1] "MSE: 4.617367, MAE: 1.210929, R2: 0.671036"
Para los datos de entrenamiento, se obtiene un MAE de 1.2109293, y un R2 de 0.6710363.
## [1] "MSE: 4.674386, MAE: 1.196665, R2: 0.673394"
Para los datos de validación del año 2019, se obtiene un MAE de 1.1966649, y un R2 de 0.6733937.
## [1] -1.177976
La variación entre el MAE de entrenamiento y validación fue muy pequeña, de tan solo -1.177976 %; este dato nos ayuda a estar muy seguros de que no hay sobre entrenamiento. Con este modelo también conseguimos un MAE muy pequeño, cercano a 1.2, y el R2 cuadrado no disminuyó demasiado, pues sigue estando cerca del 70%. Por tanto, concluimos que este modelo sigue siendo adecuado para realizar predicciones a nivel semanal, según nuestro criterio de éxito.
## [1] "MSE: 5.290364, MAE: 1.363336, R2: 0.242350"
Para los datos de validación del año 2020, se obtiene un MAE de 1.3633359, y un R2 de 0.2423501.
## [1] 12.58592
La variación entre el MAE de entrenamiento y validación fue de 12.58592 %.
Finalmente, evaluaremos el modelo 5 de manera mensual, para validar su eficacia en este caso.
Veamos cómo se comporta este modelo para predecir la accidentalidad
mensualmente. Las variables a usar son FESTIVIDAD,
MES, CLASE y COMUNA.
## [1] "MSE: 4.627134, MAE: 1.211572, R2: 0.670330"
Para los datos de entrenamiento, se obtiene un MAE de 1.2115717, y un R2 de 0.6703301.
## [1] "MSE: 4.678369, MAE: 1.196327, R2: 0.673115"
Para los datos de validación del año 2019, se obtiene un MAE de 1.1963273, y un R2 de 0.6731154.
## [1] -1.258233
La variación entre el MAE de entrenamiento y validación fue muy pequeña, de tan solo -1.258233 %; este dato nos ayuda a estar muy seguros de que no hay sobre entrenamiento. Con este modelo también conseguimos un MAE muy pequeño, cercano a 1.2, y el R2 cuadrado no disminuyó demasiado, pues sigue estando cerca del 70%. Por tanto, concluimos que este modelo sigue siendo adecuado para realizar predicciones a nivel semanal, según nuestro criterio de éxito.
## [1] "MSE: 5.281210, MAE: 1.361556, R2: 0.243661"
Para los datos de validación del año 2020, se obtiene un MAE de 1.3615561, y un R2 de 0.243661.
## [1] 12.37932
La variación entre el MAE de entrenamiento y validación fue de 12.37932 %.